#include <bits/stdc++.h>

using namespace std;

class Solution
{
public:
    inline double slen(vector<int> &a, vector<int> &b)
    {
        return pow(a[0] - b[0], 2) + pow(a[1] - b[1], 2);
    }

    bool f(vector<int> &a, vector<int> &b, vector<int> &c)
    {
        double d1 = slen(a, b);
        double d2 = slen(a, c);
        double d3 = slen(b, c);
        if (abs(d3 - d1 - d2) < abs(1e-8) || abs(d2 - d1 - d3) < abs(1e-8) || abs(d1 - d2 - d3) < abs(1e-8))
        {
            if (!d1 || !d2 || !d3)
            {
                return false;
            }
            if (d1 == d2 || d2 == d3 || d1 == d3)
            {
                return true;
            }
        }
        return false;
    }
    bool validSquare(vector<int> &p1, vector<int> &p2, vector<int> &p3, vector<int> &p4)
    {
        return f(p1, p2, p3) && f(p1, p2, p4) && f(p2, p3, p4) && f(p1, p3, p4);
    }
};
